/*
 * @(#)XfvhdlMessage.java        3.0                          2004/09/14
 *
 * This file is part of Xfuzzy 3.0, a design environment for fuzzy logic
 * based systems.
 *
 * (c) 2000 IMSE-CNM. The authors may be contacted by the email address:
 *                    xfuzzy-team@imse.cnm.es
 *
 * Xfuzzy is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by
 * the Free Software Foundation.
 *
 * Xfuzzy is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 */

package xfuzzy.xfvhdl;

import xfuzzy.*;

/**
* Clase que gestiona los mensajes que se producen el el proceso de 
* s�ntesis.
* @author Jos� Mar�a �vila Maireles
* @version 1.1
*/
public final class XfvhdlMessage {

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //		  ATRIBUTOS PRIVADOS DE LA CLASE 				       
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   private static String messages = new String();
   private int mens = 0;
   private Xfuzzy xfuzzy = null;

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //				CONSTRUCTORES DE LA CLASE					   
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   /**
   * Constructor de la clase XfvhdlMessage.
   */
   public XfvhdlMessage(Xfuzzy xfuzzy) {
      this.xfuzzy = xfuzzy;
   }

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //				  M�TO_DOS P�BLICOS DE LA CLASE				   
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   /**
   * M�todo p�blico para a�adir un mensaje.
   * @param m Mensaje que se ha producido.
   */
   public void addMessage(String m) {
      messages += m;
      mens++;
   }

   /**
   * M�todo que establece un xfuzzy para poder mostrar los mensajes en 
   * el log.
   */
   public void setXfuzzy(Xfuzzy xfuzzy) {
      this.xfuzzy = xfuzzy;
   }

   /**
   * M�todo que indica si existe alg�n mensaje.
   */
   public boolean hasMessages() {
      boolean e = false;
      if (mens > 0)
         e = true;

      return e;
   }

   /**
   * M�todo que muestra por pantalla todos los mensajes acumulados y 
   * deja vacio el contenedor de mensajes.
   */
   public void show() {
      if (xfuzzy == null)
         System.out.print(messages);
      else
         xfuzzy.log(messages);

      messages = "";
      mens = 0;
   }

} // Fin de la clase.
